package merge;

public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
//        int[]tmp = new int[m];
//        for (int i = 0; i < m; i++) {
//            tmp[i] = nums1[i];
//        }
//        int p1 = 0;
//        int p2 = 0;
//        int index = 0;
//        while(p1<m&&p2<n){
//            if(tmp[p1]<nums2[p2]){
//                nums1[index++] = tmp[p1];
//                p1++;
//            }else{
//                nums1[index++] = nums2[p2];
//                p2++;
//            }
//        }
//        if(p1<m){
//            for (;index< nums1.length;index++){
//                nums1[index] = tmp[p1++];
//            }
//        }
//        if(p2<n){
//            for (;index< nums1.length;index++){
//                nums1[index] = tmp[p2++];
//            }
//        }
        int[] sorted = new int[m+n];
        int p1 = 0;
        int p2 = 0;
        int index = 0;
        while(p1<m&&p2<n){
            if(nums1[p1] < nums2[p2]){
                sorted[index++] = nums1[p1];
            }else{
                sorted[index++] = nums2[p2];
            }
        }
        if(p1<m){
            while(p1<m){
                sorted[index++] = nums1[p1++];
            }
        }else{
            while(p2<n){
                sorted[index++] = nums2[p2++];
            }
        }
        for (int i = 0; i < sorted.length; i++) {
            nums1[i] = sorted[i];
        }
    }
}
